<!doctype html>
<html lang=ru id=faq>

<!-- If you make edits to any FAQ documents, please start each sentence
     on a new line, and try to keep the general formatting consistent
     with the rest of the pages -->

<title>OpenBSD FAQ: Мультимедиа</title>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="../openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/faq/faq13.html">
<style>
table {
	border-collapse: collapse;
	empty-cells: show;
	margin-top: 1em;
}

td {
	text-align: center;
	border: #000 1px solid;
}
</style>

<h2 id=OpenBSD>
<a href="../index.html">
<i>Open</i><b>BSD</b></a>
FAQ - Мультимедиа
<small>
<a href="index.html">[FAQ Индекс]</a>
</small>
</h2>
<hr>

<ul>
  <li><a href="#confaudio"  >Конфигурирование аудио устройств</a>
  <li><a href="#playaudio"  >Проигрывание различных форматов аудио</a>
  <li><a href="#playCD"     >Проигрывание аудио CD</a>
  <li><a href="#recordaudio">Запись аудио-сэмплов</a>
  <li><a href="#recordmon"  >Recording a Monitor Mix of All Audio Playback</a>
  <li><a href="#audioserver">Аудио-сервер OpenBSD (sndiod)</a>
  <li><a href="#audioprob"  >Отладка проблем со звуком</a>
  <li><a href="#midi"       >Использование MIDI инструментов</a>
  <li><a href="#playDVD"    >Проигрывание DVD</a>
  <li><a href="#burnCD"     >Запись CD и DVD</a>
<ul>
  <li><a href="#burnIntro"  >Введение и базовая настройка</a>
  <li><a href="#writeCD"    >Запись CD</a>
  <li><a href="#writeDVD"   >Запись DVD</a>
</ul>
  <li><a href="#plugins"    >Плагины для браузера (Java и Flash)</a>
</ul>
<hr>

<h2 id="confaudio">Конфигурирование Аудио Устройств</h2>

Все поддерживаемые аудио драйвера уже включены в конфигурацию ядра GENERIC,
поэтому не необходимости для дополнительной конфигурации или установки
драйверов.
При запуске <a href="https://man.openbsd.org/mixerctl">mixerctl(1)</a> без аргументов
будут перечислены список настроек микшера устройства и текущие значения.

<pre class="cmdbox">
$ <b>mixerctl</b>
</pre>

Некоторые устройства имеют небольшое количество настроек, тогда как другие
сотню или более.
Обратите внимание, что не каждая настройка аудио чипа доступна для изменения извне.
Например, в списке может быть больше выходов, чем доступно на звуковой карте
или материнской карте.

<p>
Есть несколько настроек, которые являются общими для большинства устройств:

<ul>
  <li><code>outputs.master</code> контролирует выходной уровень воспроизведения
  <li><code>record.source</code> контролирует входы для АЦП (Аналого-Цифровой
  Преобразователь), используемого для записи звука
  <li><code>record.volume</code> контролирует входной уровень АЦП
</ul>

Элементы управления аудиоустройства могут быть помечены по-разному.
Обычно элементы управления имеют значимую метку, но иногда нужно просто
попробовать разные настройки, чтобы увидеть, какой эффект имеет каждый элемент
управления.

<p>
Некоторые устройства используют так называемый EAPD, что означает отключение
внешнего усилителя. Впрочем, это просто еще один выключатель.
Вероятно, его называют «выключением питания», поскольку он часто используется
для энергосбережения, что означает, что этот тип управления чаще встречается в
ноутбуках. Иногда необходимо установить элементы управления с <code>eapd</code>
или <code>extamp</code> в их имени, чтобы получить выходной сигнал.

<p>
В качестве основного примера использования <code>mixerctl</code> для установки громкости
правого и левого каналов на 200 нужно выполнить:

<pre class="cmdbox">
$ <b>mixerctl outputs.master=200,200</b>
outputs.master: 255,255 -> 207,207
</pre>

Обратите внимение, как значения установилось в 207.
Причина этого в том, что аудио устройство использует только 5 бит для
регулировки громкости, которые позволяют иметь только 32 значения.
Другое аппаратное обеспечение может иметь другую точность.

<p>
Чтобы включить основной канал, вы должны сделать:

<pre class="cmdbox">
$ <b>mixerctl outputs.master.mute=off</b>
outputs.master.mute: on -> off
</pre>

Чтобы изменения не сбрасывались после каждой перезагрузки отредакируйте
<code>/etc/mixerctl.conf</code>. Например:

<pre class="cmdbox">
$ <b>cat /etc/mixerctl.conf</b>
outputs.master=200,200
outputs.master.mute=off
outputs.headphones=160,160
outputs.headphones.mute=off
</pre>

Чтобы изменить устройство вывода звука по умолчанию, например, использовать
внешний ЦАП, а не встроенную звуковую карту в материнской плате, просто
измените флаги запуска sndiod (8), чтобы использовать это устройство:

<pre class="cmdbox">
# <b>rcctl set sndiod flags -f rsnd/1</b>
# <b>rcctl restart sndiod</b>
</pre>

Это сделает второе аудио-устройство (<code>rsnd/1</code>) используемым по
умолчанию.

<h2 id="playaudio">Воспроизведение разных форматов аудио</h2>

OpenBSD поставляется с <a href="https://man.openbsd.org/aucat">aucat(1)</a>,
- программой для записи и проигрывания WAV, AIFF и AU файлов.
В следующем примере будет воспроизводиться WAV файл.

<pre class="cmdbox">
$ <b>aucat -i filename.wav</b>
</pre>

Другие аудиоформаты могут обрабатываться сторонними приложениями.

<h2 id="playCD">Воспроизведение аудио CD</h2>

Воспроизведение аудио компакт-дисков возможно либо с помощью проигрывателя
компакт-дисков, воспроизводящего диск и отправляющего аналоговое аудио на
звуковую карту, либо путем считывания аудиоданных и отправки цифровых семплов
на звуковую карту по шине PCI.

<p>
Для проигрывания аудио компакт-дисков с использованием аналогового выхода
CD-ROM вы можете:

<ul>
  <li>Использовать выход для наушников, как правило, на передней стороне привода.
  <li>Подключить аудиовыход на задней стороне привода к вашей звуковой плате.
</ul>

Используйте утилиту <a href="https://man.openbsd.org/cdio">cdio(1)</a> для
проигрывания CD:

<pre class="cmdbox">
$ <b>cdio play</b>
</pre>

Эта команда начнёт проигрывание в первом CD-ROM устройстве, <code>cd0</code>,
по умолчанию. Обратите внимание, что пользователь, запускающий cdio должен
иметь достаточно прав для чтения файла устройства CD-ROM (например
<code>/dev/rcd0c</code>).
Так как по умолчанию устройство разрешено читать только root и пользователям в
группе <code>operator</code>, то вы можете добавить пользователя в группу
<code>operator</code> для удобства редактированием строки в
<code>/etc/group</code>.
В качестве альтернативы вы можете поменять права доступа на файл устройства,
если это нужно.

<p>
Обратите внимание, что вам может потребоваться включить вход с CD в микшере.
Как и у выходов, фактическое имя этого входа может отличаться в разных
системах, но вы можете использовать такую команду:

<pre class="cmdbox">
$ <b>mixerctl inputs.cd.mute=off</b>
</pre>

Также возможно, что между вашим устройством CD и звуковой картой
нет аналогового аудио соединения.
В этом случае вы можете использовать <code>cdio cdplay</code> для отправки
аудиоданных с устройства CD-ROM на звуковую карту через шину PCI.

<pre class="cmdbox">
$ <b>cdio cdplay</b>
</pre>

Многие CD-плееры с графическим интерфейсом находятся в разделе
<code>audio</code> пакетов и портов.

<h2 id="recordaudio">Запись аудиосэмплов</h2>

В целях конфиденциальности аудиозапись отключена по умолчанию в OpenBSD.
Опция <code>kern.audio.record</code> в sysctl позволяет включить её обратно.

<pre class="cmdbox">
# <b>sysctl kern.audio.record=1</b>
# <b>echo kern.audio.record=1 >> /etc/sysctl.conf</b>
</pre>

Как только это будет сделано, <a href="https://man.openbsd.org/aucat">aucat(1)</a>
может быть использован для записи.

<pre class="cmdbox">
$ <b>aucat -o file.wav</b>
</pre>

Приведенная выше команда начнет запись файла в формате WAV. Нажмите CTRL + C,
чтобы закончить запись. Файл будет содержать 16-битные стерео сэмплы на частоте
48 кГц. Другие форматы, частоты дискретизации и количество каналов
также поддерживаются. Подробности смотрите в руководстве.

<p>
Чтобы воспроизвести файл, запустите:

<pre class="cmdbox">
$ <b>aucat -i file.wav</b>
</pre>

Если запись работала, но воспроизведение записи было тихим или не таким, как
ожидалось, микшеру, вероятно, нужна некоторая настройка. Убедитесь, что вы
выбрали правильное устройство для записи и что источник включен.
Вы можете установить необходимые параметры используя
<a href="https://man.openbsd.org/mixerctl">mixerctl(1)</a>. Например:

<pre class="cmdbox">
inputs.mic.mute=off
inputs.mic.preamp=on
inputs.mic.source=mic0
record.source=mic
record.volume=255,255
record.volume.mute=off
record.mic=255
record.mic.mute=off
</pre>

Это настройки для записи с микрофона. Предварительное усиление было включено, в
противном случае записанный звук может быть довольно тихим в некоторых
системах. Однако предварительное усиление также может быть довольно громким в
других системах.

<h2 id="recordmon">Recording a Monitor Mix of All Audio Playback</h2>

A monitoring stream records combined audio output from all playback devices,
allowing you to duplicate or save anything going through the audio subsystem.
This feature can be useful for screencasts or any kind of live audio mixing.

<p>
Создайте под-устройство монитора <code>mon</code> для <a
href="https://man.openbsd.org/sndiod">sndiod(8)</a>, используя:

<pre class="cmdbox">
# <b>rcctl set sndiod flags -s default -m play,mon -s mon</b>
# <b>rcctl restart sndiod</b>
</pre>

Сконфигурируйте вашу программу для записи аудио с устройства
<code>snd/0.mon</code>:

<pre class="cmdbox">
$ <b>aucat -f snd/0.mon -o file.wav</b>
</pre>

На этом этапе всё, что воспроизводит ваша система, записывается в
<code>file.wav</code>.

<h2 id="audioserver">Аудио-сервер OpenBSD (sndiod)</h2>

<!-- This section Copyright (c) 2009 Alexandre Ratchov -->

<h3> Какие задержки мне нужны?</h3>

Задержка - это время между тем, когда программа принимает решение воспроизвести
семпл и когда пользователь слышит семпл. Поскольку аудиоданные всегда
буферизуются, эта задержка пропорциональна размеру аудиобуфера. Следующие
значения рекомендуются:

<ul>
  <li>Синтезаторы реального времени: 5 мс. Это время, которое требуется между
      нажатием клавиши на вашей MIDI-клавиатуре и фактическим прослушиванием ноты.
      Примерно 5 мс соответствуют времени, которое требуется для распространения
      звука на расстояние 1,75 м.
  <li>Игры: 50мс. Это время между тем, когда вы видите событие и слышите
      соответствующий звук.
      corresponding sound.
  <li>Кино и тому подобное: 500 мс и более. Такие приложения «знают» звук для
      воспроизведения заранее и отправляют аудиоданные таким образом, чтобы они
      воспроизводились одновременно с соответствующим изображением.
</ul>

Чем меньше аудиобуферы (для достижения низкой задержки), тем больше вероятность
переполнения/опустошения. Переполнение/опустошение буфера приводят к
заиканию звука.

<p>
sndiod (8) устанавливает минимальную задержку для всех аудио приложений, и
задержка по умолчанию составляет 160 мс.

Если вы планируете использовать приложения, для которых требуется меньшая
задержка, используйте параметр <code>-b</code>, чтобы выбрать желаемую задержку
(выраженную в количестве кадров).

Например, при частоте 48000 выборок в секунду задержка 50 мс соответствует:

<blockquote>
48000 выборок в секунду &times; 0,050 секунд = 2400 выборок
</blockquote>

Затем сделайте:

<pre class="cmdbox">
# <b>rcctl set sndiod flags -b2400</b>
</pre>

<h3>Улучшает ли низкая задержка аудио-видео синхронизацию?</h3>

Нет, для синхронизации аудио и видео не требуется низкая задержка.
Проблемы с синхронизацией часто бывают вызваны самим программным обеспечением.
Принудительное использование приложением меньших буферов (с помощью запуска
sndiod (8) в режиме с малой задержкой) в некоторых случаях может скрыть
реальную проблему и создать ощущение, что программное обеспечение работает
лучше, но, очевидно, что правильнее всего начать поиск соответствующей
проблемы.

<h3>Как я могу использовать удалённую звуковую карту?</h3>

sndiod (8) может быть настроен на прием соединений из сети, что позволяет
другим машинам также использовать звуковую карту.
На удаленной системе, на которой установлена звуковая карта, запустите:

<pre class="cmdbox">
# <b>rcctl set sndiod flags -L-</b>
</pre>

В локальной системе настройте вашу программу на использование:

<pre class="cmdbox">
snd@hostname/0
</pre>

где "имя хоста" - это адрес удаленной системы.
Переменная окружения <code>AUDIODEVICE</code> может быть установлена в
указанное выше значение, чтобы сделать удаленную звуковую карту
аудиоустройством по умолчанию.

<p>
Любая система, способная подключиться по протоколу TCP к порту 11025 удаленного
хоста, сможет использовать аудиоустройство.
В целях конфиденциальности только один пользователь из одной системы может
иметь подключения к ней в данный момент времени.
Если несколько систем должны использовать аудиоустройство одновременно,
авторизационный cookie-файл sndio (7) должен быть одинаковым.
Например, скопируйте файл <code>~/.sndio/cookie</code> во все учетные записи,
которые могут использовать аудиоустройство.

<p>
Чтобы избежать сбоев, трафику TCP через порт 11025 можно назначать приоритеты с
помощью фильтра пакетов.
При конфигурации по умолчанию sndiod будет потреблять около 200 кБ/с
пропускной способности сети.

<h2 id="audioprob">Отладка проблем со звуком</h2>

Если при воспроизведении звука ничего не слышно, возможно, микшерный пульт
переключен на низкий уровень или просто приглушен.
Смотрите <a href="#confaudio">этот</a> раздел для настройки микшера.
Пожалуйста, включите <b>все</b> входы и выходы, прежде чем сообщать о проблеме.

<p>
Если вы считаете, что ваше устройство должно работать, но по какой-то причине
это не так, то пришло время для небольшой отладки.
Следующие шаги помогут определить, обрабатываются ли данные ЦАП.

<pre class="cmdbox">
$ <b>cat > /dev/audio0 &lt; /dev/zero &amp;</b>
[1] 9926
$ <b>audioctl play.{bytes,errors}</b>
play.bytes=3312000
play.errors=0
$ <b>audioctl play.{bytes,errors}</b>
play.bytes=7065600
play.errors=0
$ <b>audioctl play.{bytes,errors}</b>
play.bytes=9379200
play.errors=0
$ <b>kill %1</b>
$ <b>fg %1</b>
cat > /dev/audio0 &lt; /dev/zero
Terminated
</pre>

Здесь мы видим, что количество обработанных данных <code>play.bytes</code>
увеличивается при каждой проверке, то есть данные идут.
Мы также видим, что устройство не провалило ни одного семпла
(<code>play.errors</code>).
Это тоже хорошо.

<p>
Обратите внимание, что даже если у вас были подключены динамики при выполнении
вышеуказанного теста, вы ничего не должны были слышать. Тест отправляет нули на
устройство, что является тишиной для всех поддерживаемых в настоящее время
кодировок по умолчанию.

<p>
Поскольку мы знаем, что устройство может обрабатывать данные, рекомендуется
снова проверить настройки микшера.
Убедитесь, что все выходы и все входы включены и находятся на приемлемом
уровне.

<p>
Если у вас всё ещё есть проблемы, возможно, пришло время <a
href="../report.html">подать отчёт об ошибке</a>.
Помимо обычной информации об ошибке, такой как полный dmesg и описание
проблемы, пожалуйста, также включите вывод <code>mixerctl -v</code> и
вывод вышеупомянутого теста ЦАП.

<h2 id="midi">Использование MIDI-инструментов</h2>

Протокол Musical Instrument Digital Interface (MIDI) обеспечивает
стандартизированное и эффективное средство для представления информации о
музыкальном исполнении в виде электронных данных.
Данные MIDI содержат только инструкции, необходимые синтезатору для
воспроизведения звуков, а не настоящие звуки.

<p>
Для воспроизведения даных MIDI необходим синтезатор, подключенный к MIDI-порту
аппарата.
Аналогично, для записи данных MIDI требуется инструмент MIDI (например,
клавиатура MIDI).
Некоторые звуковые карты содержат встроенные MIDI-синтезаторы, которые
подключены как MIDI-порты.
Усовершенствованные инструменты MIDI могут содержать несколько частей
(синтезаторы, клавиатуры, панели управления и т.д.).
Они появляются как несколько портов MIDI в OpenBSD.

<p>
Если у вас уже запущена OpenBSD, найдите MIDI-порты в выходных данных команды
dmesg(8).
Пример MIDI-портов в выводе dmesg:

<pre class="cmdbox">
umidi0 at uhub2 port 2 configuration 1 interface 0 "Roland Roland XV-2020" rev 1.10/1.00 addr 2
midi0 at umidi0: &lt;USB MIDI I/F&gt;
umidi1 at uhub1 port 2 configuration 1 interface 1 "Evolution Electronics Ltd. USB Keystation 61es" rev 1.00/1.25 addr 3
midi1 at umidi1: &lt;USB MIDI I/F&gt;
</pre>

Он показывает два MIDI-порта, известных <a
href="https://man.openbsd.org/sndio">sndio(7)</a> как:

<ul>
  <li><code>rmidi/0</code> - синтезатор подключен через USB
  <li><code>rmidi/1</code> - мастер-клавиатура MIDI
</ul>

Они поддерживаются символьными устройствами <code>/dev/rmidi0</code> и
<code>/dev/rmidi1</code>.
Последние устройства удобны для тестирования аппаратного обеспечения, минуя
большинство уровней программного обеспечения.

Чтобы протестировать вашу MIDI-клавиатуру, вы можете использовать утилиту <a
href="https://man.openbsd.org/hexdump">hexdump(1)</a> для отображения
MIDI-данных, которые вы на ней воспроизводите:

<pre class="cmdbox">
$ <b>hexdump -e '1/1 "%02x\n"' &lt; /dev/rmidi0</b>
90
3c
71
...
</pre>

Выход клавиатуры может быть подключен к входу синтезатора следующим образом:

<pre class="cmdbox">
$ <b>cat -u &lt; /dev/rmidi0 &gt; /dev/rmidi1</b>
</pre>

Теперь вы можете услышать, что вы играете на MIDI-клавиатуре синтезатора.

<p>
<!-- XXX midiplay removed
Основная утилита для воспроизведения стандартных файлов MIDI - <a
href="https://man.openbsd.org/midiplay">midiplay(1)</a>.
Воспроизведение стандартного файла MIDI, в этом примере через синтезатор, так
же просто, как:

<pre class="cmdbox">
$ <b>midiplay -f rmidi/0 file.mid</b>
</pre>

Сервер <a href="https://man.openbsd.org/sndiod">sndiod(8)</a> предоставляет
MIDI-порты, позволяя программам отправлять друг другу MIDI-данные. Например,
если у вас нет подключенного аппаратного синтезатора, вы можете запустить
программный (например, порт audio/fluidsynth), а затем использовать его в
качестве выхода MIDI:

<pre class="cmdbox">
$ <b>midiplay -f midithru/0 file.mid</b>
</pre>
XXX midiplay removed -->

Для записи MIDI-файлов вы можете использовать утилиту <code>smfrec</code>,
включенную порт <code>audio/midish</code>.
Например:

<pre class="cmdbox">
$ <b>smfrec -d rmidi/0 -i rmidi/1 file.mid</b>
</pre>

Эта команда запишет то, что играют на клавиатуре (<code>rmidi/1</code>), при
отправке в реальном времени на синтезаторе (<code>rmidi/0</code>), так что вы
сможете слышать то, что вы играете.
Более сложные операции, такие как редактирование, маршрутизация, микширование и
преобразование MIDI-данных, могут быть выполнены с использованием утилиты
<code>rmidish</code>, включенной в порт <code>audio/midish</code>.

<h2 id="playDVD">Проигрывание DVD</h2>

OpenBSD поддерживает DVD-носители с помощью файловой системы ISO 9660, которая
также используется на компакт-дисках, а также через файловую систему <a
href="http://www.osta.org/specs/">Universal Disk Format (UDF)</a>, которая
имеется на некоторых DVD-дисках.
Однако почти все диски DVD-Video и DVD-ROM используют формат UDF, который
является комбинацией файловых систем DVD MicroUDF (подмножество UDF 1.02) и ISO
9660.
Используется по причинам обратной совместимости.

<p>
Некоторые популярные медиаплееры, поддерживающие воспроизведение DVD, были
портированы на OpenBSD.
Пожалуйста, прочитайте инструкции по установке, которые поставляются с этими
пакетами, потому что эти инструменты могут нуждаться в дальнейшей настройке.
С помощью этих утилит можно воспроизводить DVD-диски путем прямого доступа к
необработанному устройству.
Конечно, также можно смонтировать DVD с помощью <a
href="https://man.openbsd.org/mount_cd9660">mount_cd9660(8)</a> и воспроизвести
файлы напрямую.

<p>
<b>Примечания:</b>

<ul>
  <li>Почти все DVD-диски, которые вы покупаете, зашифрованы с использованием
	  системы шифрования контента (CSS). Чтобы иметь возможность воспроизводить
	  эти зашифрованные DVD, вы можете использовать библиотеку <b>libdvd</b>,
	  также доступную через пакеты и порты.
  <li>Помните, что код вашего региона может присутствовать на вашем DVD диске.
      Это не должно быть большой проблемой при воспроизведении DVD на компьютере.
</ul>

<h2 id="burnCD">Запись CD и DVD</h2>

<h3 id="burnIntro">Введение и базовая настройка</h3>

Сначала вы должны убедиться, что ваше устройство записи CD/DVD было распознано
и настроено ядром.
Большинство устройств SCSI поддерживаются.
Устройства SATA, IDE/ATAPI и USB поддерживаются с помощью эмуляции SCSI.
Вы можете быстро найти ваше устройство в выводе <a
href="https://man.openbsd.org/dmesg">dmesg(8)</a>.
Просто ищите строки, начинающиеся с "cd.".
Например:

<pre class="cmdbox">
cd0 at scsibus0 targ 0 lun 0: &lt;TOSHIBA, CD-ROM XM-5702B, 2826&gt; SCSI0 5/cdrom removable
cd1 at scsibus1 targ 4 lun 0: &lt;PLEXTOR, CD-R PX-R412C, 1.04&gt; SCSI2 5/cdrom removable
</pre>

<h4>Error: <code>mount_cd9660: /dev/cd2c on /mnt/cdrom: No such file or directory</code></h4>

По умолчанию установщик OpenBSD создает только два файла устройств cd:
<code>cd0</code> и <code>cd1</code>.
Чтобы начать использовать ваше устройство <code>cd2</code>, вы должны создать
необходимые файлы устройства для него.
Рекомендуемый способ сделать это - использовать скрипт
<a href="https://man.openbsd.org/MAKEDEV">MAKEDEV(8)</a>.

<pre class="cmdbox">
# <b>cd /dev</b>
# <b>./MAKEDEV cd2</b>
</pre>

В дальнейшем мы, в основном, будем обращаться к устройству записи CD/DVD через
<i>необработанное</i> символьное устройство, а <b>не</b> <i>блочное</i>
устройство.

<h4>Проверка работы записывающего CD/DVD устройства</h4>

Рекомендуется проверить, правильно ли работает устройство записи CD/DVD.
В этом примере мы будем использовать этот USB-привод для записи DVD:

<pre class="cmdbox">
cd2 at scsibus2 targ 1 lun 0: &lt;LITE-ON, DVDRW LDW-851S, GS0C&gt; SCSI0 5/cdrom removable
</pre>

Попробуйте использовать его, установив в него существующий CD/DVD.
При желании вы также можете проверить скорость передачи, которую вы получаете
при копировании файлов на жесткий диск.

<h3 id="writeCD">Запись CD</h3>

<h4>Запись CD-ROM с данными</h4>

Во-первых, вам нужно создать файловую систему ISO 9660 для установки на
CD-ROM.
Для этого вы можете использовать утилиту
<a href="https://man.openbsd.org/mkhybrid">mkhybrid(8)</a> в базовой системе
или утилиту <code>mkisofs</code> из <a href="faq15.html">пакета</a>
<code>cdrtools</code>.
В приведенных ниже примерах мы будем использовать mkhybrid , хотя использование
mkisofs очень похоже.

<p>
Например, чтобы сохранить исходные коды ядра OpenBSD в образе ISO9660, вы
можете сделать:

<pre class="cmdbox">
$ <b>mkhybrid -R -o sys.iso /usr/src/sys</b>

Using ALTQ_RMC.000;1 for  /usr/src/sys/altq/altq_rmclass_debug.h (altq_rmclass.h)
...
Using IEEE8021.00H;1 for  /usr/src/sys/net80211/ieee80211_amrr.c (ieee80211.c)
 10.89% done, estimate finish Sat Nov  3 08:01:23 2007
 21.78% done, estimate finish Sat Nov  3 08:01:28 2007
...
 87.12% done, estimate finish Sat Nov  3 08:01:31 2007
 98.01% done, estimate finish Sat Nov  3 08:01:32 2007
Total translation table size: 0
Total rockridge attributes bytes: 896209
Total directory bytes: 2586624
Path table size(bytes): 11886
Max brk space used 0
45919 extents written (89 Mb)
</pre>

Опция <code>-R</code> указывает <code>mkhybrid</code> создавать расширения Rock
Ridge в образе ISO 9660.
Протокол Rock Ridge Interchange Protocol был создан для поддержки семантики
файловой системы POSIX в файловых системах ISO 9660, таких как более длинные
имена файлов, владельцы, разрешения, ссылки на файлы, программные ссылки, файлы
устройств, глубокие иерархии файлов (более 8 уровней подкаталогов) и т.д.

<p>
Если вы хотите, чтобы длинные имена файлов на вашем компакт-диске были доступны
для чтения в системах Windows, вы должны добавить флаг <code>-J</code>, чтобы
включить также расширения Joliet в образ ISO 9660.

<p>
После создания файловой системы вы можете проверить это, <a
href="faq14.html#MountImage">смонтировав образ ISO</a> 9660.
Если все хорошо, теперь вы готовы записать CD-R(W). Самый простой способ
сделать это - использовать утилиту <a
href="https://man.openbsd.org/cdio">cdio(1)</a>.

<p>
Если вы используете мультизаписываемый носитель, такой как CD-RW, вам нужно
будет очистить носитель перед его записью.

<pre class="cmdbox">
# <b>cdio -f cd1c blank</b>
</pre>

Теперь вы готовы записать образ, созданный в приведенном выше примере, на
пустой CD-R(W). Вы можете использовать команду, похожую на:

<pre class="cmdbox">
# <b>cdio -f cd1c tao sys.iso</b>
</pre>

С опциями, указанными выше, мы указываем cdio использовать второй привод CD-ROM в
качестве записывающего устройства.

<p>
Чтобы проверить, правильно ли записан CD-ROM, вы можете смонтировать его и
проверить, все ли на месте.
Чтобы смонтировать файловую систему, вы должны использовать блочное устройство
для привода CD-ROM, который в этом случае всё ещё остаётся записывающим
устройством CD:

<pre class="cmdbox">
# <b>mount /dev/cd1c /mnt/cdrom</b>
</pre>

<h4>Запись аудио-CD</h4>

Для записи аудио-CD, вы опять можете использовать
<a href="https://man.openbsd.org/cdio">cdio(1)</a> с опцией <code>tao -a</code>.

<p>
Как пример мы сделаем запасную копию музыкального CD.
Это включает в себя два шага:

<ol>
<li>Получить аудиодорожки с оригинального CD.

<pre class="cmdbox">
# <b>cdio -f cd1c cdrip</b>
</pre>

Эта команда извлечёт несколько WAV файлов на диск с вашего второго привода.

<p>
<li>Запись аудиодорожки на чистый CD.

<pre class="cmdbox">
# <b>cdio -f cd1c tao -a *.wav</b>
</pre>
</ol>

<h3 id="writeDVD">Запись DVD</h3>

Есть несколько важных моментов, связанных с DVD, которые вы должны знать перед
тем как начать записывать DVD самостоятельно.

<ul>
  <li>Если вы действительно хотите узнать всё о DVD, то вам следует почитать
      полезный документ <a href="https://www.dvddemystified.com/dvdfaq.html">DVD FAQ</a>.
  <li>Инструкции из этой главы имели очень ограниченное тестирование и мы конечно же
      не пробовали комбинации из всех возможных дисков и записывающих устройств.
	  Тем не менее, мы слышали о положительном опыте использования всех DVD
	  форматов, упомянутых здесь.
</ul>

<h4>Различные форматы DVD</h4>

Существует ряд различных форматов DVD. Обычно используются форматы DVD-R,
DVD-RW, DVD+R и DVD+RW (R означает однократную запись, RW означает, что его
можно перезаписать несколько тысяч раз). Это в значительной степени
конкурирующие стандарты.

<p>
Совсем другой формат - это DVD-RAM, который в основном разрабатывался как
накопитель данных и имеет расширенные функции записи пакетов, что позволяет
использовать его как оптический жесткий диск.
DVD-RAM не рекомендуется для использования с видео, поскольку видео
записывается на диски в формате, несовместимом с обычными DVD-плеерами.

<p>
Важным моментом является использование носителя, который подходит вашему
устройству записи DVD.
Если вы ожидаете совместимости с другими DVD-плеерами, следите за своим шагом и
обязательно прочитайте <a
href="https://www.dvddemystified.com/dvdfaq.html#4.3.1">этот раздел</a> этот
раздел FAQ по DVD.

<h4>Скорость записи DVD</h4>

Может быть полезно уточнить, что скорости DVD отличаются от скоростей CD-ROM.
Таблица ниже даёт примерное представление:

<table>
<tr>
 <td>Скорость записи и чтения DVD
 <td>Скорость передачи (MB/s)
 <td>Эквивалентная скорость чтения и записи CD-R(W)
<tr>
 <td>1&times;
 <td>1.32
 <td>9&times;
<tr>
 <td>2&times;
 <td>2.64
 <td>18&times;
<tr>
 <td>4&times;
 <td>5.28
 <td>36&times;
<tr>
 <td>8&times;
 <td>10.57
 <td>72&times;
</table>

<p>
Как вы можете видеть из таблицы скорость записи относительно высокая и вы
должны убедиться в достаточной производительности вашей шины данных(SCSI,
IDE/ATAPI, SATA, USB) для поддержки такой пропускной способности.
В большинстве случаев скорости SCSI, SATA, и IDE/ATAPI шин должно быть
достаточно.

<h4>Запись DVD</h4>

По сути, этот процесс очень похож на запись CD-R(W). Используемое программное
обеспечение, однако, отличается.
На данный момент лучший вариант - это <code>growisofs</code> из пакета <code>sysutils/dvd+rw-tools</code>.
Эта утилита записывает образ ISO 9660 на носитель DVD. Все записываемые форматы
DVD поддерживаются dvd+rw-tools.

<p>
Если вы хотите получить больше информации о носителе, то вы можете использовать
утилиту <code>dvd+rw-tools</code>.

Есть два варианта для записи DVD:

<ul>
  <li>Предварительно создайте ISO 9660 из ваших данных, сохраните образ на
      жестком диске, затем запишите этот образ на DVD.
  <li>Немедленно запишите ISO 9660 из ваших данных на DVD.
</ul>

Я создал предварительно образ ISO 9660 из CVS-модулей OpenBSD (src, xenocara,
ports и www), содержащихся в каталоге /cvs на моём диске.
Я использовал следующую команду, которая выглядит очень похоже на ту, которую я
использовал для создания образа CD-ROM выше.

<pre class="cmdbox">
$ <b>mkhybrid -r -o cvs.iso /cvs</b>
</pre>

При желании проверьте файловую систему ISO 9660,
<a href="faq14.html#MountImage">смонтировав образ</a>.
Чтобы записать этот образ (около 2 ГБ) на пустой DVD-диск, можно использовать:

<pre class="cmdbox">
# <b>growisofs -dvd-compat -Z /dev/rcd2c=cvs.iso</b>
Executing 'builtin_dd if=cvs.iso of=/dev/rcd2c obs=32k seek=0'
/dev/rcd2c: pre-formatting blank DVD+RW...
/dev/rcd2c: "Current Write Speed" is 4.1x1385KBps.
  23822336/1545832448 ( 1.5%) @3.9x, remaining 5:19
  42172416/1545832448 ( 2.7%) @3.9x, remaining 5:20
  60522496/1545832448 ( 3.9%) @3.9x, remaining 4:54
...
1504706560/1545832448 (97.3%) @3.9x, remaining 0:07
1523318784/1545832448 (98.5%) @3.9x, remaining 0:04
1541898240/1545832448 (99.7%) @3.9x, remaining 0:00
/dev/rcd2c: flushing cache
/dev/rcd2c: writing lead-out
/dev/rcd2c: reloading tray
</pre>

Опция <code>-Z</code> указывает growisofs записать начальный сеанс на
устройство, которое в данном случае является моим DVD-рекордером, подключенным
к <code>cd2</code>.
Параметр <code>-dvd-compat</code> закрывает диск, что означает, что к нему
нельзя <code>-dvd-compat</code> больше сеансов.
Это должно обеспечить лучшую совместимость с проигрывателями видео DVD и
некоторыми старыми устройствами DVD-ROM.

<p>
Обратите внимание, как growisofs показывает скорость записи, в данном случае
скорость DVD 3.9x, что является ожидаемой от комбинации носителя и
записывающего устройства, как показано <code>dvd+rw-tools</code>.

<p>
Если у вас мало места на диске и вы не можете сохранить образ ISO 9660 для DVD,
вы можете записать свои данные сразу на DVD.
Давайте сначала сделаем пробный прогон, который имитирует создание файловой
системы.

<pre class="cmdbox">
# <b>growisofs -dry-run -Z /dev/rcd2c -R /cvs</b>
</pre>

Если команда выполнилась успешно, то просто уберите опцию -dry-run и начните
запись DVD.

<p>
Также возможно добавить данные на существующий DVD с использованием опции
<code>-M</code>, которая объединяет новую сессию с существующей:

<pre class="cmdbox">
# <b>growisofs -M /dev/rcd2c -R /mydata</b>
</pre>

Для получения дополнительной информации о growisofs обратитесь к странице
руководства.

<p>
Когда запись на DVD будет завершена смонтируйте диск и проверьте, что всё, что
вы записывали на самом деле записано.

<h4>Почему скорость записи ниже ожидаемой?</h4>

Вместо скорости записи в выводе, приведенном выше, вы можете увидеть что-то
наподобие:

<pre class="cmdbox">
   4784128/1545832448 ( 0.3%) @0.7x, remaining 26:50
   7929856/1545832448 ( 0.5%) @0.7x, remaining 29:05
  14123008/1545832448 ( 0.9%) @0.7x, remaining 27:06
...
</pre>

что будет сильно медленнее.
Это означает, что недостаточно пропускной способности на той шине, которую
использует ваш DVD-привод. В приведенном выше примере устройство записи
DVD-дисков USB было подключено к машине, на которой драйвер
<a href="https://man.openbsd.org/ehci">ehci(4)</a>, используемый контроллерами USB
2.0, не был правильно инициализирован. Как всегда, вы можете предоставить
исправления и результаты тестов.
Записывающее устройство DVD переключилось на более медленный интерфейс USB 1.1,
что приводит к снижению пропускной способности.
Действительно, USB 1.1 ограничен до 12 Мбит/с, что составляет 1,43 МБ/с или
1,08x с точки зрения скорости DVD.
Записывающее устройство DVD возвращается к более низкому темпу, чем
максимальный, чтобы уменьшить риск переполнения буфера.

<h2 id="plugins">Плагины для браузера (Java и Flash)</h2>

Поддержка Java-плагина может быть получена с помощью пакета
<code>icedtea-web</code>. Проверьте список расширений в вашем браузере и
убедитесь в наличии расширения icedtea-web.  Обычно список расширений можно
найти по ссылке <code>about:plugins</code> в браузерах от Mozilla и
<code>chrome://components</code> в Chromium/Iridium.

<p>
Обратите внимание, что из-за проблем с безопасностью в апплетах Java
большинство браузеров по умолчанию отключают поддержку Java.
У вас будет запрошено явное согласие на запуск апплетов через icedtea-web.

<p>
Плагин Adobe Flash распространяется только в двоичном формате и
компания-разработчик не предоставляет версию для OpenBSD. Принимая во внимание
количество уязвимостей в этом плагине мы благодарим их за это упущение.

<p>
Если вы всего лишь хотите смотреть видео с помощью Flash на популярных
сайтах, то обратите внимание на эти пакеты:
<a href="https://github.com/monsieurvideo/get-flash-videos">get_flash_videos</a>,
<a href="https://flavio.tordini.org/minitube">minitube</a>,
<a href="https://streamlink.github.io/">streamlink</a>
и <a href="https://rg3.github.io/youtube-dl/">youtube-dl</a>.
